# Dimensions of the problem let n_airports:=3; let n_sectors:=4; let n_flights:=3; let time_intervals:= 40; # Definition of the sets of the problem let T:={1..time_intervals}; let F:={“f1”,”f2”,”f3”}; let K:={"A","B","C"}; let S:={"I","II","III","IV"}; let C:={"f2","f3"}; # continued flights # Departure capacity of airport K at time t let {i in T} D_k["A",i]:=1; let {i in T} D_k["B",i]:=1; let {i in T} D_k["C",i]:=1; # Arrival capacity of airport K at time t let {i in T} A_k["A",i]:=1; let {i in T} A_k["B",i]:=1; let {i in T} A_k["C",i]:=1; # Capacity of sector j at time t let {i in T} S_j["I",i]:=4; let {i in T} S_j["II",i]:=4; let {i in T} S_j["III",i]:=4; let {i in T} S_j["IV",i]:=4; # Scheduled departure times let d_f["f1"]:=1; let d_f["f2"]:=1; let d_f["f3"]:=17; # Scheduled arrivals times let a_f["f1"]:=15; let a_f["f2"]:=13; let a_f["f3"]:=23; # Turnaround times let s_f["f1"]:=5; let s_f["f2"]:=5; let s_f["f3"]:=5; # Origin and Destination Airport let origin_f["f1"]:={"A"}; let origin_f["f2"]:={"A"}; let origin_f["f3"]:={"B"}; let destination_f["f1"]:={"C"}; let destination_f["f2"]:={"B"}; let destination_f["f3"]:={"C"}; # Nodes and arcs for flight f let N_f["f1"]:={"A","q(A)","a","b","C"}; let N_f["f2"]:={"A","q(A)","e","B"}; let N_f["f3"]:={"B","q(B)","f","C"}; let arcs["f1"]:={"(A,q(A))","(q(A),a)","(a,b)","(b,C)"}; let arcs["f2"]:={"(A,q(A))","(q(A),e)","(e,B)"}; let arcs["f3"]:={"(B,q(B))","(q(B),f)","(f,C)"}; # Number of time units that flight f must spend in arc m,n let l_fnm["f1","(A,q(A))"]:=0; let l_fnm["f1","(q(A),a)"]:=5; let l_fnm["f1","(a,b)"]:=8; let l_fnm["f1","(b,C)"]:=1; let l_fnm["f2","(A,q(A))"]:=0; let l_fnm["f2","(q(A),e)"]:=5; let l_fnm["f2","(e,B)"]:=7; let l_fnm["f3","(B,q(B))"]:=0; let l_fnm["f3","(q(B),f)"]:=3; let l_fnm["f3","(f,C)"]:=3; # Scheduled time of arrival of flight f to arrive at node n (not considering possible delays) let {k in F, i1 in N_f[k]} r_fn[k,i1] := (sum{i2 in arcs[k]: ord(i2) < ord(i1)} l_fnm[k,i2])+d_f[k]; # maximum ground holding time units delay per flight f let G["f1"]:=2; let G["f2"]:=3; let G["f3"]:=3; # maximum airborne unit delays for flight f let A["f1"]:=5; let A["f2"]:=4; let A["f3"]:=4; # Smallest time interval for flight f to arrive at node n let {k in F, i in N_f[k]: ord(i)<=2} T_fn[k,i]:={r_fn[k,i] .. min(r_fn[k,i]+G[k],time_intervals)}; let {k in F, i in N_f[k]: ord(i)>2} T_fn[k,i]:={r_fn[k,i] .. min(r_fn[k,i]+G[k]+A[k],time_intervals)}; # Unit cost for air and ground delay let ca["f1"]:=3; let ca["f2"]:=2.5; let ca["f3"]:=2.5; let cg["f1"]:=1.5; let cg["f2"]:=1.5; let cg["f3"]:=1.5; # Nodes and arcs belonging to Sector j that are overflown by Fligh k # [Note that N_S denotes what in the statement is N_{jf}] let N_S["f1","I"]:={"A", "q(A)", "a"}; let N_S["f1","II"]:={"a","b"}; let N_S["f1","III"]:={}; let N_S["f1","IV"]:={"b","C"}; let arc_S["f1","I"]:={"(A,q(A))","(q(A),a)"}; let arc_S["f1","II"]:={"(a,b)"}; let arc_S["f1","III"]:={}; let arc_S["f1","IV"]:={"(b,C)"}; let N_S["f2","I"]:={"A", "q(A)", "e"}; let N_S["f2","II"]:={}; let N_S["f2","III"]:={"e", "B"}; let N_S["f2","IV"]:={}; let arc_S["f2","I"]:={"(A,q(A))","(q(A),e)"}; let arc_S["f2","II"]:={}; let arc_S["f2","III"]:={"(e,B)"}; let arc_S["f2","IV"]:={}; let N_S["f3","I"]:={}; let N_S["f3","II"]:={}; let N_S["f3","III"]:={"B","q(B)","f"}; let N_S["f3","IV"]:={"f","C"}; let arc_S["f3","I"]:={}; let arc_S["f3","II"]:={}; let arc_S["f3","III"]:={"(B,q(B))","(q(B),f)"}; let arc_S["f3","IV"]:={"(f,C)"};